kate Library API Documentation

kateattribute.h

00001 /* This file is part of the KDE libraries
00002    Copyright (C) 2003 Hamish Rodda <rodda@kde.org>
00003 
00004    This library is free software; you can redistribute it and/or
00005    modify it under the terms of the GNU Library General Public
00006    License version 2 as published by the Free Software Foundation.
00007 
00008    This library is distributed in the hope that it will be useful,
00009    but WITHOUT ANY WARRANTY; without even the implied warranty of
00010    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011    Library General Public License for more details.
00012 
00013    You should have received a copy of the GNU Library General Public License
00014    along with this library; see the file COPYING.LIB.  If not, write to
00015    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00016    Boston, MA 02111-1307, USA.
00017 */
00018 
00019 #ifndef KATEATTRIBUTE_H
00020 #define KATEATTRIBUTE_H
00021 
00022 #include "katefont.h"
00023 
00024 #include <qcolor.h>
00025 
00032 class KateAttribute
00033 {
00034 public:
00035   enum items {
00036     Weight = 0x1,
00037     Bold = 0x2,
00038     Italic = 0x4,
00039     Underline = 0x8,
00040     StrikeOut = 0x10,
00041     Outline = 0x20,
00042     TextColor = 0x40,
00043     SelectedTextColor = 0x80,
00044     BGColor = 0x100,
00045     SelectedBGColor = 0x200
00046   };
00047 
00048   KateAttribute();
00049   virtual ~KateAttribute();
00050 
00051   QFont font(const QFont& ref);
00052 
00053   inline int width(FontStruct& fs, const QString& text, int col, int tabWidth) const
00054   { return fs.width(text, col, bold(), italic(), tabWidth); };
00055 
00056   // Non-preferred function when you have a string and you want one char's width!!
00057   inline int width(FontStruct& fs, const QChar& c, int tabWidth) const
00058   { return fs.width(c, bold(), italic(), tabWidth); };
00059 
00060   inline bool itemSet(int item) const
00061   { return item & m_itemsSet; };
00062 
00063   inline bool isSomethingSet() const
00064   { return m_itemsSet; };
00065 
00066   inline int itemsSet() const
00067   { return m_itemsSet; };
00068 
00069   inline void clearAttribute(int item)
00070   { m_itemsSet &= (~item); }
00071 
00072   inline int weight() const
00073   { return m_weight; };
00074 
00075   void setWeight(int weight);
00076 
00077   inline bool bold() const
00078   { return weight() >= QFont::Bold; };
00079   
00080   void setBold(bool enable = true);
00081 
00082   inline bool italic() const
00083   { return m_italic; };
00084   
00085   void setItalic(bool enable = true);
00086 
00087   inline bool underline() const
00088   { return m_underline; };
00089   
00090   void setUnderline(bool enable = true);
00091 
00092   inline bool strikeOut() const
00093   { return m_strikeout; };
00094 
00095   void setStrikeOut(bool enable = true);
00096 
00097   inline const QColor& outline() const
00098   { return m_outline; };
00099   
00100   void setOutline(const QColor& color);
00101 
00102   inline const QColor& textColor() const
00103   { return m_textColor; };
00104   
00105   void setTextColor(const QColor& color);
00106 
00107   inline const QColor& selectedTextColor() const
00108   { return m_selectedTextColor; };
00109 
00110   void setSelectedTextColor(const QColor& color);
00111 
00112   inline const QColor& bgColor() const
00113   { return m_bgColor; };
00114   
00115   void setBGColor(const QColor& color);
00116 
00117   inline const QColor& selectedBGColor() const
00118   { return m_selectedBGColor; };
00119   
00120   void setSelectedBGColor(const QColor& color);
00121 
00122   KateAttribute& operator+=(const KateAttribute& a);
00123 
00124   friend bool operator ==(const KateAttribute& h1, const KateAttribute& h2);
00125   friend bool operator !=(const KateAttribute& h1, const KateAttribute& h2);
00126 
00127   virtual void changed() { m_changed = true; };
00128   bool isChanged() { bool ret = m_changed; m_changed = false; return ret; };
00129 
00130   void clear();
00131 
00132 private:
00133   int m_weight;
00134   bool m_italic, m_underline, m_strikeout, m_changed;
00135   QColor m_outline, m_textColor, m_selectedTextColor, m_bgColor, m_selectedBGColor;
00136   int m_itemsSet;
00137 };
00138 
00139 #endif
KDE Logo
This file is part of the documentation for kate Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Apr 21 18:45:16 2004 by doxygen 1.3.6-20040222 written by Dimitri van Heesch, © 1997-2003