//
//     Copyright 2007 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2006 Jim Bublitz also apply


//                 Generated by preSip


// This file is part of PyKDE4.

// PyKDE4 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 2.1 of
// the License, or (at your option) any later version.

// PyKDE4 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 General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

namespace KTextEditor
{

class Attribute : QTextCharFormat
{
%TypeHeaderCode
#include <ktexteditor/attribute.h>
%End


public:
    typedef KSharedPtr<KTextEditor::Attribute> Ptr;
                            Attribute ();
                            Attribute (const KTextEditor::Attribute& a);
//ig    void                    changed () const;

    enum CustomProperties
    {
        Outline,
        SelectedForeground,
        SelectedBackground,
        BackgroundFillWhitespace,
        AttributeDynamicEffect,
        AttributeInternalProperty,
        AttributeUserProperty
    };

    bool                    fontBold () const;
    void                    setFontBold (bool bold = 1);
    QBrush                  outline () const;
    void                    setOutline (const QBrush& brush);
    QBrush                  selectedForeground () const;
    void                    setSelectedForeground (const QBrush& foreground);
    QBrush                  selectedBackground () const;
    void                    setSelectedBackground (const QBrush& brush);
    bool                    backgroundFillWhitespace () const;
    void                    setBackgroundFillWhitespace (bool fillWhitespace);
    void                    clear ();
    bool                    hasAnyProperty () const;
//ig    void                    associateAction (KAction* action);
//ig    void                    dissociateAction (KAction* action);
    const QList<KAction*>&  associatedActions () const;
    void                    clearAssociatedActions ();

    enum ActivationType
    {
        ActivateMouseIn,
        ActivateCaretIn
    };


    enum Effect
    {
        EffectNone,
        EffectFadeIn,
        EffectFadeOut,
        EffectPulse,
        EffectCycleGradient
    };

    typedef QFlags<KTextEditor::Attribute::Effect> Effects;
    KTextEditor::Attribute::Ptr  dynamicAttribute (KTextEditor::Attribute::ActivationType type) const;
    void                    setDynamicAttribute (KTextEditor::Attribute::ActivationType type, KTextEditor::Attribute::Ptr attribute);
    KTextEditor::Attribute::Effects  effects () const;
    void                    setEffects (KTextEditor::Attribute::Effects effects);
    KTextEditor::Attribute&  operator += (const KTextEditor::Attribute& a);

    virtual ~Attribute ();
%ConvertToSubClassCode
    // CTSCC for subclasses of 'QTextFormat'
    sipType = NULL;

    if (dynamic_cast<KTextEditor::Attribute*>(sipCpp))
        sipType = sipType_KTextEditor_Attribute;
%End
};
// class Attribute

};
// namespace KTextEditor

%ModuleHeaderCode
//ctscc
#include <ktexteditor/attribute.h>
#include <qtextformat.h>
%End
