• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdesdk API Reference
  • KDE Home
  • Contact Us
 

okteta

  • sources
  • kde-4.12
  • kdesdk
  • okteta
  • gui
  • libcolumnsview
columnsview.h
Go to the documentation of this file.
1 /*
2  This file is part of the Okteta Gui library, made within the KDE community.
3 
4  Copyright 2003,2007-2009 Friedrich W. H. Kossebau <kossebau@kde.org>
5 
6  This library is free software; you can redistribute it and/or
7  modify it under the terms of the GNU Lesser General Public
8  License as published by the Free Software Foundation; either
9  version 2.1 of the License, or (at your option) version 3, or any
10  later version accepted by the membership of KDE e.V. (or its
11  successor approved by the membership of KDE e.V.), which shall
12  act as a proxy defined in Section 6 of version 3 of the license.
13 
14  This library is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  Lesser General Public License for more details.
18 
19  You should have received a copy of the GNU Lesser General Public
20  License along with this library. If not, see <http://www.gnu.org/licenses/>.
21 */
22 
23 #ifndef OKTETA_COLUMNSVIEW_H
24 #define OKTETA_COLUMNSVIEW_H
25 
26 // lib
27 #include "oktetagui_export.h"
28 #include "kadds.h"
29 #include "linerange.h"
30 // Qt
31 #include <QtCore/QList>
32 #include <QtGui/QAbstractScrollArea>
33 
34 
35 namespace Okteta
36 {
37 
38 class AbstractColumnRenderer;
39 class ColumnsViewPrivate;
40 
47 class OKTETAGUI_EXPORT ColumnsView : public QAbstractScrollArea
48 {
49  Q_OBJECT
50 
51  public:
52  explicit ColumnsView( /*bool R = false,*/ QWidget* parent = 0 );
53  virtual ~ColumnsView();
54 
55  public: // data-wise sizes
57  LineSize noOfLines() const;
61  LineSize noOfLinesPerPage() const;
62 
63  public: // pixel-wise sizes
65  PixelY lineHeight() const;
67  PixelX columnsWidth() const;
69  PixelY columnsHeight() const;
70 
71  public: // services
75  Line lineAt( PixelY y ) const;
79  LineRange visibleLines() const;
83  LineRange visibleLines( const PixelYRange& yPixels ) const;
84 
86  PixelX visibleWidth() const;
88  PixelY visibleHeight() const;
90  PixelX xOffset() const;
92  PixelY yOffset() const;
93 
95  PixelY yOffsetOfLine( Line lineIndex ) const;
96 
98  QPoint viewportToColumns( const QPoint& point ) const;
99 
100  public:
102  void setColumnsPos( PixelX x, PixelY y );
103 
104  protected: // QAbstractScrollArea API
105  virtual bool event( QEvent* event );
106  virtual void resizeEvent( QResizeEvent* event );
107  virtual void paintEvent( QPaintEvent* paintEvent );
108  virtual void scrollContentsBy( int dx, int dy );
109 
110  protected: // our API
112  virtual void renderColumns( QPainter* painter, int cx, int cy, int cw, int ch );
114  virtual void renderEmptyArea( QPainter* painter, int cx, int cy, int cw, int ch );
115 
116  protected: //
121  virtual void setLineHeight( PixelY lineHeight );
126  virtual void setNoOfLines( LineSize noOfLines );
127 
128  protected:
129  void addColumn( AbstractColumnRenderer* columnRenderer );
130  void removeColumn( AbstractColumnRenderer* columnRenderer );
131 
132  protected: // recalculations
134  void updateWidths();
135  void updateScrollBars();
137  void updateColumn( AbstractColumnRenderer& columnRenderer );
139  void updateColumn( AbstractColumnRenderer& columnRenderer, const LineRange& lines );
140 
141  private:
142  ColumnsViewPrivate* const d;
143 };
144 
145 }
146 
147 #endif
OKTETAGUI_EXPORT
#define OKTETAGUI_EXPORT
Definition: oktetagui_export.h:36
oktetagui_export.h
QWidget
KDE::NumberRange< Line, LineSize >
QAbstractScrollArea
Okteta::Line
qint32 Line
Definition: line.h:33
Okteta::PixelX
int PixelX
Definition: kadds.h:34
linerange.h
Okteta::ColumnsView
general class for widgets with columns that display different aspects of the same data with the same ...
Definition: columnsview.h:47
kadds.h
Okteta::AbstractColumnRenderer
base class for columns of the ColumnsView
Definition: abstractcolumnrenderer.h:46
Okteta::LineSize
qint32 LineSize
Definition: line.h:34
Okteta::PixelY
int PixelY
Definition: kadds.h:35
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:04:07 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

okteta

Skip menu "okteta"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdesdk API Reference

Skip menu "kdesdk API Reference"
  • kapptemplate
  • kcachegrind
  • kompare
  • lokalize
  • okteta
  • umbrello
  •   umbrello

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal