diff options
Diffstat (limited to 'tdecachegrind/tdecachegrind/sourceitem.h')
-rw-r--r-- | tdecachegrind/tdecachegrind/sourceitem.h | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/tdecachegrind/tdecachegrind/sourceitem.h b/tdecachegrind/tdecachegrind/sourceitem.h new file mode 100644 index 00000000..925e575b --- /dev/null +++ b/tdecachegrind/tdecachegrind/sourceitem.h @@ -0,0 +1,84 @@ +/* This file is part of KCachegrind. + Copyright (C) 2003 Josef Weidendorfer <Josef.Weidendorfer@gmx.de> + + KCachegrind is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public + License as published by the Free Software Foundation, version 2. + + This program 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; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +/* + * Items of source view. + */ + +#ifndef SOURCEITEM_H +#define SOURCEITEM_H + +#include <tqlistview.h> +#include "tracedata.h" + +class SourceView; + +class SourceItem: public TQListViewItem +{ +public: + // for source lines + SourceItem(SourceView* sv, TQListView* parent, + int fileno, unsigned int lineno, + bool inside, const TQString& src, + TraceLine* line = 0); + + // for call lines + SourceItem(SourceView* sv, TQListViewItem* parent, + int fileno, unsigned int lineno, + TraceLine* line, TraceLineCall* lineCall); + + // for jump lines + SourceItem(SourceView* sv, TQListViewItem* parent, + int fileno, unsigned int lineno, + TraceLine* line, TraceLineJump* lineJump); + + uint lineno() const { return _lineno; } + int fileNumber() const { return _fileno; } + bool inside() const { return _inside; } + TraceLine* line() const { return _line; } + TraceLineCall* lineCall() const { return _lineCall; } + TraceLineJump* lineJump() const { return _lineJump; } + + int compare(TQListViewItem * i, int col, bool ascending ) const; + + void paintCell( TQPainter *p, const TQColorGroup &cg, + int column, int width, int alignment ); + int width( const TQFontMetrics& fm, + const TQListView* lv, int c ) const; + void updateGroup(); + void updateCost(); + + // arrow lines + void setJumpArray(const TQMemArray<TraceLineJump*>& a); + +protected: + void paintArrows(TQPainter *p, const TQColorGroup &cg, int width); + TQMemArray<TraceLineJump*> _jump; + +private: + SourceView* _view; + SubCost _pure, _pure2; + uint _lineno; + int _fileno; // for line sorting (even with multiple files) + bool _inside; + TraceLine* _line; + TraceLineJump* _lineJump; + TraceLineCall* _lineCall; +}; + +#endif |