]> git.lyx.org Git - features.git/commitdiff
* Dimension is a simple wrapper class again.
authorAbdelrazak Younes <younes@lyx.org>
Mon, 4 Dec 2006 10:45:43 +0000 (10:45 +0000)
committerAbdelrazak Younes <younes@lyx.org>
Mon, 4 Dec 2006 10:45:43 +0000 (10:45 +0000)
* other files: use FontMetrics::dimension() method instead of old Dimension interface.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16167 a592a061-630c-0410-9148-cb99ea01b6c8

src/dimension.C
src/dimension.h
src/frontends/qt4/GuiFontMetrics.C
src/mathed/InsetMathBrace.C
src/mathed/InsetMathChar.C
src/mathed/InsetMathDelim.C
src/mathed/InsetMathDots.C
src/mathed/MathData.C

index 847fdd71f5b24c316bd649fd7910633854f08de1..c9a51d37e4f3944ecc52e7a08720382d0fc09454 100644 (file)
@@ -11,8 +11,6 @@
 #include <config.h>
 
 #include "dimension.h"
-#include "frontends/FontMetrics.h"
-
 
 namespace lyx {
 
@@ -26,22 +24,4 @@ void Dimension::operator+=(Dimension const & dim)
        wid += dim.wid;
 }
 
-
-void Dimension::clear(LyXFont const & font)
-{
-       frontend::FontMetrics const & fm = theFontMetrics(font);
-       asc = fm.maxAscent();
-       des = fm.maxDescent();
-       wid = 0;
-}
-
-
-void Dimension::set(LyXFont const & font, char_type c)
-{
-       frontend::FontMetrics const & fm = theFontMetrics(font);
-       des = fm.descent(c);
-       asc = fm.ascent(c);
-       wid = fm.width(c);
-}
-
 } // namespace lyx
index 26bd71064b9d1c8a518649436a2841ffa48b36c5..5dd32d3bebd2583314cfeec6e55158fc0b2f345a 100644 (file)
 #ifndef DIMENSION_H
 #define DIMENSION_H
 
-#include "support/types.h"
-
 namespace lyx {
 
-class LyXFont;
-
 /// Simple wrapper around three ints
 class Dimension {
 public:
@@ -26,8 +22,6 @@ public:
        /// initialize data
        Dimension(int w, int a, int d) : wid(w), asc(a), des(d) {}
 
-       Dimension(LyXFont const & font, char_type c) { set(font, c); }
-
        Dimension & operator=(Dimension const & dim) {
                wid = dim.wid;
                asc = dim.asc;
@@ -38,11 +32,6 @@ public:
        void operator+=(Dimension const & dim);
        /// set to empty box
        void clear() { wid = asc = des = 0; }
-       /// set to empty box suitble for given font.
-       void clear(LyXFont const & font);
-       /// set to a char dimensions for a given font.
-       void set(LyXFont const & font, char_type c);
-
        /// get height
        int height() const { return asc + des; }
        /// get ascent
index 0b0dbaf085917f1ff580991da80b2373eaabef31..744ccca803a411443f4473b86572708962a1ad51 100644 (file)
@@ -159,13 +159,13 @@ void GuiFontMetrics::buttonText(docstring const & str,
 
 Dimension const GuiFontMetrics::defaultDimension() const
 {
-       return Dimension(maxAscent(), maxDescent(), 0);
+       return Dimension(0, maxAscent(), maxDescent());
 }
 
 
 Dimension const GuiFontMetrics::dimension(char_type c) const
 {
-       return Dimension(ascent(c), descent(c), width(c));
+       return Dimension(width(c), ascent(c), descent(c));
 }
 
 
index acae12e684ba0a86c9b2adec8c703437aa01f304..18ce779746a1ec5054294cbb7295ec654d843611 100644 (file)
 #include "MathStream.h"
 #include "MathSupport.h"
 #include "LColor.h"
-#include "support/std_ostream.h"
+
+#include "frontends/FontMetrics.h"
 #include "frontends/Painter.h"
 
+#include "support/std_ostream.h"
 
 namespace lyx {
 
@@ -46,7 +48,7 @@ auto_ptr<InsetBase> InsetMathBrace::doClone() const
 bool InsetMathBrace::metrics(MetricsInfo & mi, Dimension & dim) const
 {
        cell(0).metrics(mi);
-       Dimension t(mi.base.font, '{');
+       Dimension t = theFontMetrics(mi.base.font).dimension('{');
        dim.asc = max(cell(0).ascent(), t.asc);
        dim.des = max(cell(0).descent(), t.des);
        dim.wid = cell(0).width() + 2 * t.wid;
@@ -62,7 +64,7 @@ void InsetMathBrace::draw(PainterInfo & pi, int x, int y) const
 {
        LyXFont font = pi.base.font;
        font.setColor(LColor::latex);
-       Dimension t(font, '{');
+       Dimension t = theFontMetrics(font).dimension('{');
        pi.pain.text(x, y, '{', font);
        cell(0).draw(pi, x + t.wid, y);
        pi.pain.text(x + t.wid + cell(0).width(), y, '}', font);
index 004fb2283d1ab0e573908d12b895563d1014d0d1..3557d2efc450fd0058921e7e40cb6e0aa197ff1b 100644 (file)
@@ -62,15 +62,15 @@ bool InsetMathChar::metrics(MetricsInfo & mi, Dimension & dim) const
 #if 1
        if (char_ == '=' && has_math_fonts) {
                FontSetChanger dummy(mi.base, "cmr");
-               dim.set(mi.base.font, char_);
+               dim = theFontMetrics(mi.base.font).dimension(char_);
        } else if ((char_ == '>' || char_ == '<') && has_math_fonts) {
                FontSetChanger dummy(mi.base, "cmm");
-               dim.set(mi.base.font, char_);
+               dim = theFontMetrics(mi.base.font).dimension(char_);
        } else if (!slanted(char_) && mi.base.fontname == "mathnormal") {
                ShapeChanger dummy(mi.base.font, LyXFont::UP_SHAPE);
-               dim.set(mi.base.font, char_);
+               dim = theFontMetrics(mi.base.font).dimension(char_);
        } else {
-               dim.set(mi.base.font, char_);
+               dim = theFontMetrics(mi.base.font).dimension(char_);
        }
        int const em = mathed_char_width(mi.base.font, 'M');
        if (isBinaryOp(char_))
@@ -79,7 +79,7 @@ bool InsetMathChar::metrics(MetricsInfo & mi, Dimension & dim) const
                dim.wid += static_cast<int>(0.1667*em+0.5);
 #else
        whichFont(font_, code_, mi);
-       dim.set(font_, char_);
+       dim = theFontMetrics(font_).dimension(char_);
        if (isBinaryOp(char_, code_))
                width_ += 2 * theFontMetrics(font_).width(' ');
        lyxerr << "InsetMathChar::metrics: " << dim << endl;
index 2805ac986394fed32319878f02a2845f6ee95718..fd660f025cb8ffc33b35cf705142475f9a8d1ce1 100644 (file)
@@ -17,6 +17,7 @@
 #include "MathStream.h"
 #include "MathSupport.h"
 
+#include "frontends/FontMetrics.h"
 
 namespace lyx {
 
@@ -74,8 +75,7 @@ void InsetMathDelim::normalize(NormalStream & os) const
 bool InsetMathDelim::metrics(MetricsInfo & mi, Dimension & dim) const
 {
        cell(0).metrics(mi);
-       Dimension t;
-       t.set(mi.base.font, 'I');
+       Dimension t = theFontMetrics(mi.base.font).dimension('I');
        int h0 = (t.asc + t.des) / 2;
        int a0 = max(cell(0).ascent(), t.asc)   - h0;
        int d0 = max(cell(0).descent(), t.des)  + h0;
index 3f87f29f53927263b6ec91702e813c8756330ec9..e45748486edf4f5f28b27336077752c42ae195d5 100644 (file)
@@ -16,6 +16,7 @@
 #include "MathSupport.h"
 #include "MathParser.h"
 
+#include "frontends/FontMetrics.h"
 
 namespace lyx {
 
@@ -37,7 +38,7 @@ auto_ptr<InsetBase> InsetMathDots::doClone() const
 
 bool InsetMathDots::metrics(MetricsInfo & mi, Dimension & dim) const
 {
-       dim.set(mi.base.font, 'M');
+       dim = theFontMetrics(mi.base.font).dimension('M');
        dh_ = 0;
        if (key_->name == "cdots" || key_->name == "dotsb"
                        || key_->name == "dotsm" || key_->name == "dotsi")
index 06dd9db4d1503d3fab5457880835b130ad59454d..afc5457bbe71fc425f80d87bfb5e45e8bf8dd4b2 100644 (file)
@@ -25,6 +25,7 @@
 #include "debug.h"
 #include "LColor.h"
 
+#include "frontends/FontMetrics.h"
 #include "frontends/Painter.h"
 
 #include <boost/assert.hpp>
@@ -241,7 +242,7 @@ bool isInside(DocIterator const & it, MathArray const & ar,
 
 void MathArray::metrics(MetricsInfo & mi) const
 {
-       dim_.set(mi.base.font, 'I');
+       dim_ = theFontMetrics(mi.base.font).dimension('I');
 
        if (empty())
                return;