/usr/include/gtkmathview/MathView/ComputerModernShaper.hh is in libgtkmathview-dev 0.8.0-10+nmu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | // Copyright (C) 2000-2007, Luca Padovani <padovani@sti.uniurb.it>.
//
// This file is part of GtkMathView, a flexible, high-quality rendering
// engine for MathML documents.
//
// GtkMathView is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License as published
// by the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// GtkMathView is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef __ComputerModernShaper_hh__
#define __ComputerModernShaper_hh__
#include "Char.hh"
#include "Shaper.hh"
#include "ComputerModernFamily.hh"
class GMV_MathView_EXPORT ComputerModernShaper : public Shaper
{
protected:
ComputerModernShaper(const SmartPtr<class AbstractLogger>&, const SmartPtr<class Configuration>&);
virtual ~ComputerModernShaper();
public:
SmartPtr<ComputerModernFamily> getFamily(void) const { return family; }
virtual void registerShaper(const SmartPtr<class ShaperManager>&, unsigned);
virtual void unregisterShaper(const SmartPtr<class ShaperManager>&, unsigned);
virtual void shape(class ShapingContext&) const;
enum PostShapingMode {
POST_SHAPING_NEVER,
POST_SHAPING_MATH,
POST_SHAPING_TEXT,
POST_SHAPING_ALWAYS
};
PostShapingMode getPostShapingMode(void) const { return postShapingMode; }
void setPostShapingMode(PostShapingMode m) { postShapingMode = m; }
bool setPostShapingMode(const String&);
struct GlyphIndex
{
signed char fontEnc;
UChar8 index;
bool valid(void) const
{ return ComputerModernFamily::validFontEncId(ComputerModernFamily::FontEncId(fontEnc)); }
};
struct PlainChar
{
Char16 ch;
UChar8 index;
};
struct PlainChar32
{
Char32 ch;
UChar8 index;
};
struct HStretchyChar
{
Char16 ch;
GlyphIndex normal;
GlyphIndex left;
GlyphIndex glue;
GlyphIndex right;
};
struct VStretchyChar
{
Char16 ch;
GlyphIndex normal[5];
GlyphIndex top;
GlyphIndex glue;
GlyphIndex middle;
GlyphIndex bottom;
};
struct HBigChar
{
Char16 ch;
GlyphIndex big[5];
};
struct CombiningChar
{
Char16 ch;
GlyphIndex spec;
};
static UChar8 toTTFGlyphIndex(ComputerModernFamily::FontEncId, UChar8);
protected:
virtual void postShape(class ShapingContext&) const;
virtual AreaRef getGlyphArea(ComputerModernFamily::FontNameId,
ComputerModernFamily::FontSizeId, UChar8, int) const = 0;
AreaRef getGlyphArea(MathVariant, ComputerModernFamily::FontEncId, UChar8, const scaled&) const;
AreaRef getGlyphArea(MathVariant, const GlyphIndex&, const scaled&) const;
bool shapeChar(class ShapingContext&, ComputerModernFamily::FontEncId) const;
bool shapeStretchyCharV(class ShapingContext&) const;
bool shapeStretchyCharH(class ShapingContext&) const;
bool shapeBigCharH(class ShapingContext&, const ComputerModernShaper::HBigChar&) const;
bool shapeHorizontalBrace(class ShapingContext&) const;
bool shapeHorizontalBar(class ShapingContext&) const;
bool shapeSpecialStretchyChar(class ShapingContext&) const;
virtual bool shapeCombiningChar(class ShapingContext&) const;
protected:
PostShapingMode postShapingMode;
SmartPtr<ComputerModernFamily> family;
};
#endif // __ComputerModernShaper_hh__
|