]> git.lyx.org Git - lyx.git/blob - src/frontends/qt2/QWorkArea.h
Merge the working bits of the resize patch, and fix a couple of things
[lyx.git] / src / frontends / qt2 / QWorkArea.h
1 // -*- C++ -*-
2 /**
3  * \file QWorkArea.h
4  * Copyright 1995-2002 the LyX Team
5  * Read the file COPYING
6  *
7  * \author unknown
8  * \author John Levon <moz@compsoc.man.ac.uk>
9  */
10
11 #ifndef QWORKAREA_H
12 #define QWORKAREA_H
13
14 #ifdef __GNUG__
15 #pragma interface
16 #endif
17
18 #include <utility>
19
20 #include "WorkArea.h"
21 #include "QLPainter.h"
22 #include "QContentPane.h"
23  
24 #include <qwidget.h>
25 #include <qscrollbar.h>
26 #include <qpixmap.h>
27
28  
29 /**
30  * Qt-specific implementation of the work area
31  * (buffer view GUI)
32  *
33  * It consists of a content pane widget, and a scrollbar.
34  * Hopefully soon we can just use QScrollView ...
35  */
36 class QWorkArea : public WorkArea, public QWidget {
37  
38         friend class QContentPane;
39  
40 public:
41
42         QWorkArea(int x, int y, int w, int h);
43
44         virtual ~QWorkArea();
45         /// return this widget's painter
46         virtual Painter & getPainter() { return painter_; }
47         /// return the width of the content pane
48         virtual int workWidth() const { return content_->width(); }
49         /// return the height of the content pane
50         virtual int workHeight() const { return content_->height(); }
51         /// FIXME: makes no sense ?
52         virtual void redraw() const { }
53         /// 
54         virtual void setScrollbarParams(int height, int pos, int line_height);
55  
56         /// a selection exists
57         virtual void haveSelection(bool) const;
58         ///
59         virtual string const getClipboard() const;
60         ///
61         virtual void putClipboard(string const &) const;
62
63         /// get the pixmap we paint on to
64         QPixmap * getPixmap() const { return content_->pixmap(); }
65
66         /// get the content pane widget
67         QWidget * getContent() const { return content_; }
68
69 private:
70         /// scroll bar
71         QScrollBar * scrollbar_;
72         /// content
73         QContentPane * content_;
74  
75         /// our painter
76         QLPainter painter_;
77 };
78  
79 #endif // QWORKAREA_H