Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

StyleConsts.h

Go to the documentation of this file.
00001 #ifndef __STYLECONSTS_H
00002 #define __STYLECONSTS_H
00003 
00004 typedef unsigned short StyleType;
00005 
00006 #ifdef _WINDOWS
00007 #include <string.h>
00008 #endif
00009 #include <string.h>
00010 #include <stdlib.h>
00011 #include <qglobal.h>
00012 class QImage;
00013 
00014 struct GraphicLink
00015 {
00016     QImage* graphic;
00017     bool isLink;
00018     unsigned long link;
00019     GraphicLink(QImage* p, bool isLnk, unsigned long tgt) :
00020         graphic(p), isLink(isLnk), link(tgt) {}
00021     ~GraphicLink();
00022 };
00023 
00024 struct pmstore
00025 {
00026     unsigned int count;
00027     bool m_isScaleable;
00028     GraphicLink*     graphic;
00029     pmstore(bool _canScale, QImage* p, bool isLnk, unsigned long tgt) : count(1), m_isScaleable(_canScale)
00030         {
00031             graphic = new GraphicLink(p, isLnk, tgt);
00032         }
00033     ~pmstore();
00034 };
00035 
00036 enum EalignmentType
00037 {
00038     m_AlignLeft,
00039     m_AlignRight,
00040     m_AlignCentre,
00041     m_AlignJustify,
00042     m_AlignNone
00043 };
00044 
00045 class CBasicStyle
00046 {
00047     friend class CStyle;
00048     bool m_bold,
00049       m_italic;
00050     unsigned long m_table;
00051     int m_fontsize;
00052     EalignmentType m_align;
00053     unsigned char red, green, blue;
00054     unsigned char bred, bgreen, bblue;
00055     unsigned char pred, pgreen, pblue;
00056     unsigned long data;
00057     unsigned long offset;
00058     bool isLink;
00059     //    bool isVisited;
00060     bool m_underline;
00061     bool m_strikethru;
00062     bool m_monospaced;
00063     unsigned char m_leftmargin, m_rightmargin;
00064     signed char m_extraspace;
00065     signed char m_voffset;
00066     CBasicStyle()
00067         {
00068             unset();
00069             m_table = 0xffffffff;
00070         }
00071     bool operator!=(const CBasicStyle& rhs)
00072         {
00073             return (memcmp(this, &rhs, sizeof(CBasicStyle)) != 0);
00074         }
00075     void unset()
00076         {
00077             m_bold = false;
00078             m_italic = false;
00079             m_fontsize = 0;
00080             m_align = m_AlignLeft;
00081             red = green = blue = 0;
00082             bred = bgreen = bblue = 255;
00083             pred = pgreen = pblue = 255;
00084             data = 0;
00085             offset = 0;
00086             isLink = false;
00087             //    isVisited = false;
00088             m_underline = false;
00089             m_strikethru = false;
00090             m_leftmargin = 0;
00091             m_rightmargin = 0;
00092             m_monospaced = false;
00093             m_extraspace = 0;
00094             m_voffset = 0;
00095         }
00096 };
00097 
00098 class CStyle
00099 {
00100     CBasicStyle sty;
00101     pmstore* graphic;
00102  public:
00103     signed char getVOffset() { return sty.m_voffset; }
00104     void setVOffset(signed char sp) { sty.m_voffset = sp; }
00105     signed char getExtraSpace() { return sty.m_extraspace; }
00106     void setExtraSpace(signed char sp) { sty.m_extraspace = sp; }
00107     bool getPictureLink()
00108         {
00109             return (graphic != NULL && graphic->graphic->isLink);
00110         }
00111     unsigned long getPictureLinkData()
00112         {
00113             return graphic->graphic->link;
00114         }
00115     void setLeftMargin(unsigned char m) { sty.m_leftmargin = m; }
00116     unsigned char getLeftMargin() { return sty.m_leftmargin; }
00117     void setRightMargin(unsigned char m) { sty.m_rightmargin = m; }
00118     unsigned char getRightMargin() { return sty.m_rightmargin; }
00119     unsigned char Red() { return sty.red; }
00120     unsigned char Green() { return sty.green; }
00121     unsigned char Blue() { return sty.blue; }
00122     void setColour(unsigned char r, unsigned char g, unsigned char b)
00123         {
00124             sty.red = r;
00125             sty.green = g;
00126             sty.blue = b;
00127         }
00128     unsigned char bRed() { return sty.bred; }
00129     unsigned char bGreen() { return sty.bgreen; }
00130     unsigned char bBlue() { return sty.bblue; }
00131     unsigned char pRed() { return sty.pred; }
00132     unsigned char pGreen() { return sty.pgreen; }
00133     unsigned char pBlue() { return sty.pblue; }
00134     void setPaper(unsigned char r, unsigned char g, unsigned char b)
00135         {
00136             sty.pred = r;
00137             sty.pgreen = g;
00138             sty.pblue = b;
00139         }
00140     void setBackground(unsigned char r, unsigned char g, unsigned char b)
00141         {
00142             sty.bred = r;
00143             sty.bgreen = g;
00144             sty.bblue = b;
00145         }
00146     CStyle() : graphic(NULL) {}
00147     ~CStyle();
00148 //    CStyle(CStyle&);
00149     CStyle(const CStyle&);
00150     CStyle& operator=(const CStyle&);
00151     void unset();
00152     bool isTable() const { return (sty.m_table != 0xffffffff); }
00153     void setTable(unsigned long _b) { sty.m_table = _b; }
00154     unsigned long getTable() { return sty.m_table; }
00155     bool isPicture() const { return (graphic != NULL); }
00156     bool canScale() const { return graphic->m_isScaleable; }
00157     void clearPicture();
00158     void setPicture(bool canScale, QImage* _g, bool il=false, unsigned long tgt=0);
00159     QImage* getPicture()
00160         { 
00161             QImage* pm = ((graphic != NULL) ? graphic->graphic->graphic : NULL);
00162             return pm;
00163         }
00164     void setUnderline() { sty.m_underline = true; }
00165     void unsetUnderline() { sty.m_underline = false; }
00166     bool isUnderline() { return sty.m_underline; }
00167     void setStrikethru() { sty.m_strikethru = true; }
00168     void unsetStrikethru() { sty.m_strikethru = false; }
00169     bool isStrikethru() { return sty.m_strikethru; }
00170     void setBold() { sty.m_bold = true; }
00171     void unsetBold() { sty.m_bold = false; }
00172     bool isBold() { return sty.m_bold; }
00173     void setItalic() { sty.m_italic = true; }
00174     void unsetItalic() { sty.m_italic = false; }
00175     bool isItalic() { return sty.m_italic; }
00176     void setMono() { sty.m_monospaced = true; }
00177     void unsetMono() { sty.m_monospaced = false; }
00178     bool isMono() { return sty.m_monospaced; }
00179 
00180     void setLeftJustify()
00181         {
00182             sty.m_align = m_AlignLeft;
00183         }
00184     void setRightJustify()
00185         {
00186             sty.m_align = m_AlignRight;
00187         }
00188     void setCentreJustify()
00189         {
00190             sty.m_align = m_AlignCentre;
00191         }
00192     void setFullJustify()
00193         {
00194             sty.m_align = m_AlignJustify;
00195         }
00196     void setNoJustify()
00197         {
00198             sty.m_align = m_AlignNone;
00199         }
00200     StyleType getJustify()
00201         {
00202             return sty.m_align;
00203         }
00204 
00205     void setFontSize(int _fs)
00206         {
00207             sty.m_fontsize = _fs;
00208         }
00209     int getFontSize() const
00210         {
00211             return sty.m_fontsize;
00212         }
00213     bool operator!=(const CStyle& rhs)
00214         {
00215             return
00216                 (
00217                     (sty != rhs.sty) ||
00218                     (graphic != rhs.graphic)
00219                     );
00220         }
00221     void setLink(bool _l) { sty.isLink = _l; }
00222     bool getLink() { return sty.isLink; }
00223     //    void setVisited(bool _l) { sty.isVisited = _l; }
00224     //    bool getVisited() { return sty.isVisited; }
00225     void setData(unsigned long _d) { sty.data = _d; }
00226     unsigned long getData() { return sty.data; }
00227     void setOffset(unsigned long _d) { sty.offset = _d; }
00228     unsigned long getOffset() { return sty.offset; }
00229     void invert();
00230 };
00231 
00232 #endif

Generated on Sat Nov 5 16:16:59 2005 for OPIE by  doxygen 1.4.2