contextstyle.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef CONTEXTSTYLE_H
00022 #define CONTEXTSTYLE_H
00023
00024
00025 #include <qcolor.h>
00026 #include <qfont.h>
00027 #include <qstring.h>
00028 #include <qstringlist.h>
00029
00030
00031 #include <kconfig.h>
00032
00033 #include "kozoomhandler.h"
00034
00035
00036 #include "kformuladefs.h"
00037
00038
00039 KFORMULA_NAMESPACE_BEGIN
00040
00041 class FontStyle;
00042 class SymbolTable;
00043
00044
00053 class ContextStyle : public KoZoomHandler
00054 {
00055 public:
00056
00057 enum Alignment { left, center, right };
00058
00071 enum TextStyle {
00072 displayStyle = 0,
00073 textStyle = 1,
00074 scriptStyle = 2,
00075 scriptScriptStyle = 3
00076 };
00077
00078 enum IndexStyle {normal, cramped};
00079
00083 ContextStyle();
00084 ~ContextStyle();
00085
00086 void init();
00087 void readConfig( KConfig* config );
00088
00089 bool edit() const { return m_edit; }
00090 void setEdit( bool e ) { m_edit = e; }
00091
00095 const SymbolTable& symbolTable() const;
00096
00097 const FontStyle& fontStyle() const { return *m_fontStyle; }
00098
00099
00100 void setZoomAndResolution( int zoom, int dpiX, int dpiY );
00101
00106 bool setZoomAndResolution( int zoom, double zoomX, double zoomY, bool updateViews, bool forPrint );
00107
00108 bool syntaxHighlighting() const { return m_syntaxHighlighting; }
00109 void setSyntaxHighlighting( bool highlight ) { m_syntaxHighlighting = highlight; }
00110
00111 QColor getDefaultColor() const { return defaultColor; }
00112 QColor getNumberColorPlain() const { return numberColor; }
00113 QColor getOperatorColorPlain() const { return operatorColor; }
00114 QColor getErrorColorPlain() const { return errorColor; }
00115 QColor getEmptyColorPlain() const { return emptyColor; }
00116 QColor getHelpColorPlain() const { return helpColor; }
00117 QColor getNumberColor() const;
00118 QColor getOperatorColor() const;
00119 QColor getErrorColor() const;
00120 QColor getEmptyColor() const;
00121 QColor getHelpColor() const;
00122
00123 void setDefaultColor( const QColor& );
00124 void setNumberColor( const QColor& );
00125 void setOperatorColor( const QColor& );
00126 void setErrorColor( const QColor& );
00127 void setEmptyColor( const QColor& );
00128 void setHelpColor( const QColor& );
00129
00130 QString getFontStyle() const { return m_fontStyleName; }
00131 void setFontStyle( const QString& fontStyle );
00132
00133 QFont getDefaultFont() const { return defaultFont; }
00134 QFont getNameFont() const { return nameFont; }
00135 QFont getNumberFont() const { return numberFont; }
00136 QFont getOperatorFont() const { return operatorFont; }
00137 QFont getSymbolFont() const { return symbolFont; }
00138
00139 void setDefaultFont( QFont f ) { defaultFont = f; }
00140 void setNameFont( QFont f ) { nameFont = f; }
00141 void setNumberFont( QFont f ) { numberFont = f; }
00142 void setOperatorFont( QFont f ) { operatorFont = f; }
00143
00144
00145
00146
00147 double getReductionFactor( TextStyle tstyle ) const;
00148
00149 luPt getBaseSize() const;
00150 int baseSize() const { return m_baseSize; }
00151 void setBaseSize( int pointSize );
00152 void setSizeFactor( double factor );
00153
00154 TextStyle getBaseTextStyle() const { return m_baseTextStyle; }
00155 bool isScript( TextStyle tstyle ) const { return ( tstyle == scriptStyle ) ||
00156 ( tstyle == scriptScriptStyle ); }
00157
00161 luPixel getSpace( TextStyle tstyle, SpaceWidth space ) const;
00162 luPixel getThinSpace( TextStyle tstyle ) const;
00163 luPixel getMediumSpace( TextStyle tstyle ) const;
00164 luPixel getThickSpace( TextStyle tstyle ) const;
00165 luPixel getQuadSpace( TextStyle tstyle ) const;
00166
00167 luPixel axisHeight( TextStyle tstyle ) const;
00168
00172 luPt getAdjustedSize( TextStyle tstyle ) const;
00173
00177 luPixel getLineWidth() const;
00178
00179 luPixel getEmptyRectWidth() const;
00180 luPixel getEmptyRectHeight() const;
00181
00182 Alignment getMatrixAlignment() const { return center; }
00183
00184 bool getCenterSymbol() const { return centerSymbol; }
00185
00192 TextStyle convertTextStyleFraction( TextStyle tstyle ) const;
00193
00200 TextStyle convertTextStyleIndex( TextStyle tstyle ) const;
00201
00211 IndexStyle convertIndexStyleUpper( IndexStyle istyle ) const {
00212 return istyle; }
00213
00214
00224 IndexStyle convertIndexStyleLower( IndexStyle ) const {
00225 return cramped; }
00226
00227 private:
00228
00229 void setup();
00230
00231 struct TextStyleValues {
00232
00233 void setup( double reduction ) { reductionFactor = reduction; }
00234
00235 luPt thinSpace( luPt quad ) const { return static_cast<luPt>( reductionFactor*static_cast<double>( quad )/6. ); }
00236 luPt mediumSpace( luPt quad ) const { return static_cast<luPt>( reductionFactor*static_cast<double>( quad )*2./9. ); }
00237 luPt thickSpace( luPt quad ) const { return static_cast<luPt>( reductionFactor*static_cast<double>( quad )*5./18. ); }
00238 luPt quadSpace( luPt quad ) const { return quad; }
00239
00240 luPixel axisHeight( luPixel height ) const { return static_cast<luPixel>( reductionFactor*height ); }
00241 double reductionFactor;
00242 };
00243
00244 TextStyleValues textStyleValues[ 4 ];
00245
00246 QFont defaultFont;
00247 QFont nameFont;
00248 QFont numberFont;
00249 QFont operatorFont;
00250 QFont symbolFont;
00251
00252
00253
00254 QColor defaultColor;
00255 QColor numberColor;
00256 QColor operatorColor;
00257 QColor errorColor;
00258 QColor emptyColor;
00259 QColor helpColor;
00260
00265 bool linearMovement;
00266
00270 int m_baseSize;
00271
00276 double m_sizeFactor;
00277
00281 TextStyle m_baseTextStyle;
00282
00286 pt lineWidth;
00287
00291 luPt quad;
00292
00296 luPixel m_axisHeight;
00297
00302 bool centerSymbol;
00303
00307 bool m_syntaxHighlighting;
00308
00312 bool m_edit;
00313
00317
00318
00319 FontStyle* m_fontStyle;
00320 QString m_fontStyleName;
00321 };
00322
00323 KFORMULA_NAMESPACE_END
00324
00325 #endif // CONTEXTSTYLE_H
This file is part of the documentation for lib Library Version 1.3.5.