KTextEditor
smartrangewatcher.h
Go to the documentation of this file.
00001 /* This file is part of the KDE project 00002 Copyright (C) 2003-2005 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., 51 Franklin Street, Fifth Floor, 00016 Boston, MA 02110-1301, USA. 00017 */ 00018 00019 #ifndef KDELIBS_KTEXTEDITOR_SMARTRANGEWATCHER_H 00020 #define KDELIBS_KTEXTEDITOR_SMARTRANGEWATCHER_H 00021 00022 #include <ktexteditor/ktexteditor_export.h> 00023 #include <QtCore/QObject> 00024 00025 #include <ktexteditor/attribute.h> 00026 00027 // TODO: Should SmartRangeWatcher become a base class for SmartRangeNotifier? 00028 00029 namespace KTextEditor 00030 { 00031 class SmartRange; 00032 class View; 00033 00050 class KTEXTEDITOR_EXPORT SmartRangeWatcher 00051 { 00052 public: 00056 SmartRangeWatcher(); 00057 00061 virtual ~SmartRangeWatcher(); 00062 00069 bool wantsDirectChanges() const; 00070 00079 void setWantsDirectChanges(bool wantsDirectChanges); 00080 00086 virtual void rangePositionChanged(SmartRange* range); 00087 00093 virtual void rangeContentsChanged(SmartRange* range); 00094 00104 virtual void rangeContentsChanged(SmartRange* range, SmartRange* mostSpecificChild); 00105 00116 virtual void mouseEnteredRange(SmartRange* range, View* view); 00117 00128 virtual void mouseExitedRange(SmartRange* range, View* view); 00129 00140 virtual void caretEnteredRange(SmartRange* range, View* view); 00141 00152 virtual void caretExitedRange(SmartRange* range, View* view); 00153 00159 virtual void rangeEliminated(SmartRange* range); 00160 00167 virtual void rangeDeleted(SmartRange* range); 00168 00176 virtual void parentRangeChanged(SmartRange* range, SmartRange* newParent, SmartRange* oldParent); 00177 00184 virtual void childRangeInserted(SmartRange* range, SmartRange* child); 00185 00192 virtual void childRangeRemoved(SmartRange* range, SmartRange* child); 00193 00202 virtual void rangeAttributeChanged(SmartRange* range, Attribute::Ptr currentAttribute, Attribute::Ptr previousAttribute); 00203 00204 private: 00205 bool m_wantDirectChanges; 00206 }; 00207 00208 } 00209 00210 #endif 00211 00212 // kate: space-indent on; indent-width 2; replace-tabs on;
KDE 4.6 API Reference