X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fdimension.h;h=4e803682d3d97f6663840544cdbaceeae73f52f8;hb=35204f8f33d7400a5fefeffea533fb4cb4097211;hp=7fe34b34d6a9f08f2fd7b719c3a206f1bd63ebc4;hpb=723ee136ba0f980346de93289b278c3a544f3e71;p=lyx.git diff --git a/src/dimension.h b/src/dimension.h index 7fe34b34d6..4e803682d3 100644 --- a/src/dimension.h +++ b/src/dimension.h @@ -1,49 +1,54 @@ // -*- C++ -*- - /** - * \file dimension.h - * - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. + * \file dimension.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * \author André Pönitz + * \author André Pönitz * - * Full author contact details are available in file CREDITS. + * Full author contact details are available in file CREDITS. */ #ifndef DIMENSION_H #define DIMENSION_H +namespace lyx { + class LyXFont; /// Simple wrapper around three ints -struct Dimension { +class Dimension { public: /// constructor - Dimension() : w(0), a(0), d(0) {} + Dimension() : wid(0), asc(0), des(0) {} /// initialize data - Dimension(int ww, int aa, int dd) : w(ww), a(aa), d(dd) {} + Dimension(int w, int a, int d) : wid(w), asc(a), des(d) {} /// glue horizontally void operator+=(Dimension const & dim); /// set to empty box - void clear() { w = a = d = 0; } + void clear() { wid = asc = des = 0; } /// set to empty box suitble for given font void clear(LyXFont const & font); /// get height - int height() const { return a + d; } + int height() const { return asc + des; } /// get ascent - int ascent() const { return a; } + int ascent() const { return asc; } /// get descent - int descent() const { return d; } + int descent() const { return des; } /// get width - int width() const { return w; } + int width() const { return wid; } + + /// add space for a frame + //void addFrame(int frame) const; + /// add space for bottom part of a frame + //void addFrameBottom(int frame) const; public: /// these are intentionally public as things like /// - /// dim.a += 20; + /// dim.asc += 20; /// /// are used all over the place and "hiding" those behind /// @@ -51,11 +56,20 @@ public: /// /// makes the code neither faster nor clearer /// width - int w; + int wid; /// ascent - int a; + int asc; /// descent - int d; + int des; }; +inline +bool operator==(Dimension const & a, Dimension const & b) +{ + return a.wid == b.wid && a.asc == b.asc && a.des ==b.des ; +} + + +} // namespace lyx + #endif